package controleur;

import java.util.TimerTask;

import modele.Case;
import modele.Map;
import modele.Batiment.BatimentDefensif;

public class TacheDefendre extends TimerTask{
	Controleur controleur;
	public static final int nbrMillisecondesAvantRepetition = 1000;
	BatimentDefensif batimentDefensif;
	
	public TacheDefendre(Controleur c, BatimentDefensif b)
	{
		controleur = c;
		batimentDefensif = b;
	}
	
	@Override
	public void run() {
		if(batimentDefensif.getPointsDeVie() > 0)
		{
			if(controleur.recupererListeUniteAttaquanteEngagees().size() > 0)
			{
				Case caseBatiment = new Case(batimentDefensif.getPosition());
				for(int i = 0; i < controleur.recupererListeUniteAttaquanteEngagees().size(); i++)
				{
					Case caseAttaquant = new Case(controleur.recupererListeUniteAttaquanteEngagees().get(i).getPosition());
					if(Map.distance(caseAttaquant, caseBatiment) <= batimentDefensif.getPortee())
					{
						controleur.recupererListeUniteAttaquanteEngagees().get(i).recevoirDegats(batimentDefensif.getPuissanceAttaque());
					}
				}
				new MonTimer(new TacheDefendre(controleur, batimentDefensif), nbrMillisecondesAvantRepetition);
			}
		}
	}
	
}
